Herein, related art is discussed to put the invention in context. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.
Operating systems serve as an interface between application programs and hardware. As new computer peripherals are developed, drivers for those peripherals can be added to an operating system so that the peripherals can be accessed by any application running on the operating system. However, for any given peripheral, different drivers would be required for different operating systems. This can be a serious problem for large computing systems in which machines running different operating systems must be able to access the same peripherals. For example, in a large data center, servers running different operating systems might have to access the same disk storage arrays. Accordingly, an Extensible Firmware Interface (EFI) has been developed as an interface between operating systems and hardware so that a single driver can be used by several different operating systems.
The extensible firmware interface has two phases that occur during boot up. During a support phase, the devices communicate their capabilities to the EFI. During this phase, drivers stored on the devices can be loaded into the EFI. During the second EFI phase, devices are started using the drivers installed during the first phase. Some devices can be configured, e.g., by writing configuration data to a configuration file read by the device as it starts. Thus, once a device has started, its configuration file can be changed, and the change can take effect by rebooting.
High-availability computing systems employ layers of redundancy to minimize interruptions due to hardware failures. For example, a server might have a reserve host-bus adapter for interfacing with a disk storage array in case a primary host-bus adapter fails. Under some circumstances, the disk array might have to be shut down and reconfigured to recognize the reserve host-bus adapter. For example, the disk array might be configured to recognize only communications from a host-bus adapter with a unique physical port ID (e.g., the world-wide name for the primary host-bus-adapter). To allow the server to access the same disk array via the reserve host-bus adapter would require reconfiguring the disk array to recognize communications with a host-bus adapter with the world-wide name of the reserve host-bus adapter. The present invention addresses the problem of minimizing the interruptions associated with such failovers. Other problems addressed by the present invention are apparent from the description below with reference to the following drawing.